package com.ifast.oldNews.dao;

import java.util.List;

import org.apache.ibatis.annotations.One;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.mapping.FetchType;

import com.baomidou.mybatisplus.plugins.Page;
import com.ifast.common.base.BaseDao;
import com.ifast.news.domain.NewsCollect;

public interface OldNewsCollectDao extends BaseDao<NewsCollect>{
	/*fetchType=FetchType.EAGER，如果是EAGER，那么表示取出这条数据时，它关联的数据也同时取出放入内存中,如果是LAZY那么取出这条数据时，它关联的数据并不取出来，在同一个session中，什么时候要用，就什么时候取(再次访问数据库)。
	但是，在session外，就不能再取了。用EAGER时，因为在内存里，所以在session外也可以取。*/	
	@Results({@Result(column="news_id",property="news",one=@One(select="com.ifast.news.dao.NewsDao.selectById",fetchType=FetchType.EAGER))})
	@Select("<script>"
			+"SELECT * FROM tb_news_collect WHERE user_id = #{userId}"
			+" <if test='nian !=null and nian !=\"\" '> and nian =#{nian} </if>"
			+"<if test='yue !=null and yue !=\"\" '> and yue =#{yue} </if>"
			+"<if test='ri !=null and ri !=\"\" '> and ri =#{ri} </if>"
			+" order by nian desc,yue desc,ri desc,create_time desc"
			+"</script>")
	public List<NewsCollect> select(Page<NewsCollect> page,NewsCollect entity);
}
